home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / mozilla-firefox / idl / nsISVGGeometrySource.idl < prev    next >
Text File  |  2006-05-08  |  7KB  |  251 lines

  1. /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  2. /* ***** BEGIN LICENSE BLOCK *****
  3.  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  4.  *
  5.  * The contents of this file are subject to the Mozilla Public License Version
  6.  * 1.1 (the "License"); you may not use this file except in compliance with
  7.  * the License. You may obtain a copy of the License at
  8.  * http://www.mozilla.org/MPL/
  9.  *
  10.  * Software distributed under the License is distributed on an "AS IS" basis,
  11.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  12.  * for the specific language governing rights and limitations under the
  13.  * License.
  14.  *
  15.  * The Original Code is the Mozilla SVG project.
  16.  *
  17.  * The Initial Developer of the Original Code is
  18.  * Crocodile Clips Ltd.
  19.  * Portions created by the Initial Developer are Copyright (C) 2002
  20.  * the Initial Developer. All Rights Reserved.
  21.  *
  22.  * Contributor(s):
  23.  *   Alex Fritze <alex@croczilla.com> (original author)
  24.  *
  25.  * Alternatively, the contents of this file may be used under the terms of
  26.  * either of the GNU General Public License Version 2 or later (the "GPL"),
  27.  * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  28.  * in which case the provisions of the GPL or the LGPL are applicable instead
  29.  * of those above. If you wish to allow use of your version of this file only
  30.  * under the terms of either the GPL or the LGPL, and not to allow others to
  31.  * use your version of this file under the terms of the MPL, indicate your
  32.  * decision by deleting the provisions above and replace them with the notice
  33.  * and other provisions required by the GPL or the LGPL. If you do not delete
  34.  * the provisions above, a recipient may use your version of this file under
  35.  * the terms of any one of the MPL, the GPL or the LGPL.
  36.  *
  37.  * ***** END LICENSE BLOCK ***** */
  38.  
  39. #include "nsISupports.idl"
  40.  
  41. %{C++
  42. #include "nsColor.h"
  43. #include "nsIURI.h"
  44. %}
  45.  
  46. native nscolor(nscolor);
  47.  
  48. interface nsIDOMSVGMatrix;
  49. interface nsPresContext;
  50. interface nsIURI;
  51. interface nsISVGGradient;
  52.  
  53. /**
  54.  * \addtogroup rendering_backend_interfaces Rendering Backend Interfaces
  55.  * @{
  56.  */
  57.  
  58. /**
  59.  * Describes a 'geometry' object (either a path or a glyph) in the SVG
  60.  * rendering backend. The rendering backend maintains an object
  61.  * implementing this interface for each rendering engine-native
  62.  * geometry object.
  63.  *
  64.  * An engine-native geometry object will be informed of changes in a
  65.  * geometry's description with a call to its 'update' method with an
  66.  * OR-ed combination of the UPDATEMASK_* constants defined in this
  67.  * interface (or one of its sub-interfaces).
  68.  *
  69.  * @nosubgrouping
  70.  */
  71. [uuid(b2c3119b-a27d-4b25-97a9-a9d60981a95e)]
  72. interface nsISVGGeometrySource : nsISupports
  73. {
  74.   /**
  75.    * @name Generic updatemasks
  76.    * @{
  77.    */
  78.   const unsigned long UPDATEMASK_NOTHING           = 0x00000000;
  79.   const unsigned long UPDATEMASK_ALL               = 0xFFFFFFFF;
  80.   /** @} */
  81.   
  82.   /**
  83.    * @name Presentation context
  84.    * @{
  85.    */
  86.   readonly attribute nsPresContext presContext;
  87.   const unsigned long UPDATEMASK_PRES_CONTEXT      = 0x00000001;
  88.   /** @} */
  89.   
  90.   /**
  91.    * @name Canvas transform matrix
  92.    * @{
  93.    */
  94.   readonly attribute nsIDOMSVGMatrix canvasTM;
  95.   const unsigned long UPDATEMASK_CANVAS_TM               = 0x00000002;
  96.   /** @} */
  97.   
  98.   /**
  99.    * @name Stroke opacity
  100.    * @{
  101.    */
  102.   readonly attribute float strokeOpacity;
  103.   const unsigned long UPDATEMASK_STROKE_OPACITY    = 0x00000004;
  104.   /** @} */
  105.  
  106.   /**
  107.    * @name Stroke width
  108.    * @{
  109.    */
  110.   readonly attribute float strokeWidth;
  111.   const unsigned long UPDATEMASK_STROKE_WIDTH      = 0x00000008;
  112.   /** @} */
  113.  
  114.   /**
  115.    * @name Stroke dash-array
  116.    * @{
  117.    */
  118.   void getStrokeDashArray([array, size_is(count)] out float arr,
  119.                           out unsigned long count);
  120.   const unsigned long UPDATEMASK_STROKE_DASH_ARRAY = 0x00000010;
  121.   /** @} */
  122.  
  123.   /**
  124.    * @name Stroke dash-offset
  125.    * @{
  126.    */
  127.   readonly attribute float strokeDashoffset;
  128.   const unsigned long UPDATEMASK_STROKE_DASHOFFSET = 0x00000020;
  129.   /** @} */
  130.  
  131.   /**
  132.    * @name Stroke line-cap
  133.    * @{
  134.    */
  135.   const unsigned short STROKE_LINECAP_BUTT   = 0;
  136.   const unsigned short STROKE_LINECAP_ROUND  = 1;
  137.   const unsigned short STROKE_LINECAP_SQUARE = 2;
  138.  
  139.   readonly attribute unsigned short strokeLinecap;
  140.   const unsigned long UPDATEMASK_STROKE_LINECAP    = 0x00000040;
  141.   /** @} */
  142.  
  143.   
  144.   /**
  145.    * @name Stroke line-join
  146.    * @{
  147.    */
  148.   const unsigned short STROKE_LINEJOIN_MITER = 0;
  149.   const unsigned short STROKE_LINEJOIN_ROUND = 1;
  150.   const unsigned short STROKE_LINEJOIN_BEVEL = 2;
  151.  
  152.   readonly attribute unsigned short strokeLinejoin;
  153.   const unsigned long UPDATEMASK_STROKE_LINEJOIN   = 0x00000080;
  154.   /** @} */
  155.   
  156.   /**
  157.    * @name Miterlimit
  158.    * @{
  159.    */
  160.   readonly attribute float strokeMiterlimit;
  161.   const unsigned long UPDATEMASK_STROKE_MITERLIMIT = 0x00000100;
  162.   /** @} */
  163.  
  164.   /**
  165.    * @name Fill opacity
  166.    * @{
  167.    */
  168.   readonly attribute float fillOpacity;
  169.   const unsigned long UPDATEMASK_FILL_OPACITY      = 0x00000200;
  170.   /** @} */
  171.  
  172.   
  173.   /**
  174.    * @name Fill rule
  175.    * @{
  176.    */
  177.   const unsigned short FILL_RULE_NONZERO = 0;
  178.   const unsigned short FILL_RULE_EVENODD = 1;
  179.   
  180.   readonly attribute unsigned short fillRule;
  181.   readonly attribute unsigned short clipRule;
  182.   const unsigned long UPDATEMASK_FILL_RULE         = 0x00000400;
  183.   /** @} */
  184.  
  185.   
  186.   /**
  187.    * @name Paint type constants for stroke and fill paint
  188.    * @{
  189.    */
  190.   const unsigned short PAINT_TYPE_NONE          = 0;
  191.   const unsigned short PAINT_TYPE_SOLID_COLOR   = 1;
  192.   const unsigned short PAINT_TYPE_SERVER        = 2; 
  193.   const unsigned short PAINT_TYPE_GRADIENT      = 3; 
  194.   const unsigned short PAINT_TYPE_PATTERN       = 4; 
  195.   /** @} */
  196.   
  197.   /**
  198.    * @name Stroke paint
  199.    * @{
  200.    */
  201.   readonly attribute unsigned short strokePaintType; 
  202.   const unsigned long UPDATEMASK_STROKE_PAINT_TYPE   = 0x00000800;
  203.  
  204.   /* strokePaintServerType will only be valid if strokePaintType ==
  205.    * PAINT_TYPE_SERVER */
  206.   readonly attribute unsigned short strokePaintServerType;
  207.  
  208.   /* strokePaint will only be valid if strokePaintType ==
  209.    * PAINT_TYPE_SOLID_COLOR */
  210.   readonly attribute nscolor strokePaint;
  211.   
  212.   /* GetStrokeGradient will only return a valid result if
  213.    * strokePaintType == PAINT_TYPE_GRADIENT */
  214.   void GetStrokeGradient(out nsISVGGradient aGrad);
  215.   
  216.   /* signifies that either paint color or server have changed,
  217.    * depending on current strokePaintType */
  218.   const unsigned long UPDATEMASK_STROKE_PAINT        = 0x00001000;
  219.  
  220.   /** @} */
  221.  
  222.   /**
  223.    * @name Fill paint
  224.    * @{
  225.    */
  226.   readonly attribute unsigned short fillPaintType; 
  227.   const unsigned long UPDATEMASK_FILL_PAINT_TYPE     = 0x00004000;
  228.  
  229.   /* fillPaintServerType will only be valid if fillPaintType ==
  230.    * PAINT_TYPE_SERVER */
  231.   readonly attribute unsigned short fillPaintServerType; 
  232.  
  233.   /* fillPaint will only be valid if fillPaintType ==
  234.    * PAINT_TYPE_SOLID_COLOR */
  235.   readonly attribute nscolor fillPaint;
  236.   
  237.   /* GetFillGradient will only return a valid result if
  238.    * fillPaintType == PAINT_TYPE_GRADIENT */
  239.   void GetFillGradient(out nsISVGGradient aGrad);
  240.   
  241.   /* signifies that either paint color or server have changed,
  242.    * depending on current fillPaintType */
  243.   const unsigned long UPDATEMASK_FILL_PAINT          = 0x00008000;
  244.   
  245.   /** @} */
  246.  
  247.   boolean IsClipChild();
  248. };
  249.  
  250. /** @} */
  251.